Amazon QuickSightで地名カラムを地理空間情報データとして使えるのか確認してみた
こんにちは、CX事業本部 IoT事業部の若槻です。
Amazon QuickSightでは、地理空間情報を利用したマップとしてpoint mapsおよびfilled mapsの2種類が利用できます。
しかし前回のエントリでは、市区町村名のカラム(千代田区
、中央区
、港区
...)使用しようとしましたが、対応していないようでした。
この場合、地理空間情報が緯度および経度で表されたカラムであれば問題は無さそうですが、国名や地域名などの地名で表されたカラムだとどこまで認識してくれるのでしょうか。
そこで今回は、Amazon QuickSightで国名や地域名などの地名カラムを地理空間情報データとして使えるのか確認してみた
確認してみる
ドキュメントを改めて確認すると、Amazon QuickSightは地名を緯度と経度の座標に変換して地図上に表示してくれるようですが、その場合はデータに国名が含まれている必要があるようです。(前回のデータではまず国名が必要だったようです。)
Amazon QuickSight geocodes place names into latitude and longitude coordinates. It uses these coordinates to display place names on the map. Amazon QuickSight skips any places that it can't geocode.
For this process to work properly, your data must include at least the country. Also, there can't be duplicate place names inside of a parent place name.
そこで国名を含んだ様々なパターンで検証をしてみます。
国名(英語)のみ
まず英語の国名のカラムを持つデータの場合。
country,population US,329064900 Japan,126860300 France,65129700
上記CSVファイルを使用してDatasetを作成します。この時に[Edit settings and prepare data]をクリック。
するとcountry
カラムが既にCountry
形式のデータとして認識されていますね。[PUBLISH & VISUALIZE]をクリック。
point mapsを使用すると、[Geospatial]でcountry
カラムが設定でき、可視化することができました。
国名(日本語)のみ
次に日本語の国名のカラムを持つデータの場合。
country,population アメリカ合衆国,329064900 日本,126860300 フランス,65129700
Prepareの段階でCountry
タイプとして認識されています。
point mapsで可視化してみると、日本
はそこまで違和感ない(長野あたり?)ですがアメリカ合衆国
の位置がまったく違いますね。フランス
に至っては表示すらされていません。
国名をアメリカ合衆国
からアメリカ
に変更したらどうでしょう。
country,population アメリカ,329064900 日本,126860300 フランス,65129700
すると次はアメリカ
まで認識されなくなり、日本
しか表示されなくなりました...。
国名は英語で指定するのが良さそうです。
国名 + 都道府県名(英語)
英語の国名および都道府県名を使用したカラムの場合はどうでしょう。
country,prefecture,population Japan,Tokyo,14047594 Japan,Kanagawa,9237337 Japan,Osaka,8837685
ファイルをDatasetとして読み込ませたら、prefecture
のタイプをCity
に変更します。
Analysisでprefecture
カラムをpoint mapsのGeospatial
に設定しようとすると、Some map data not rendered
という警告が出ました。3レコードとも値がambiguous
(曖昧)だそうです。Country
はUS
として認識されています。
メッセージをよく読むと地理空間情報カラムがhierarchyの一部となっていないとあります。
The country for processing geocoding was defaulted based on your current QuickSight region as your geocoding field is not part of a hierarchy.
そこで下記のドキュメントを参考にDatasetの編集でカラムをhierarchyに追加してみます。
まずcountry
カラムで新規のgeospatial hierarchyを作成します。
[This hierarchy is for a single country]でJapan
を指定してjapan
hierarchyを作成します。
次にprefecture
をjapan
hierarchyに追加します。
追加されたのでしょうか?Dataset上ではぱっとは分からないです。
では改めてAnalysisでprefecture
カラムをpoint mapsのGeospatial
に設定すると、意図した通りに可視化することができました。hierarchyちゃんと動作してますね!
都道府県名 + 区市町村名(英語)
最後に英語の都道府県名prefecture
および区市町村名municipality
を使用したカラムの場合。
prefecture,municipality,population Tokyo,Chiyoda-Ku,66687 Tokyo,Chuo-Ku,170475 Tokyo,Minato-Ku,257776
ファイルをDatasetとして読み込ませたら、Japan > prefecture > municipality
というhierarchyを作ります。municipality
はCounty
タイプとしています。
Analysisで可視化してみると、3レコードともなぜか渋谷にマッピングされて、上手く認識できていないようです。
ではmunicipality
のタイプをCity
とするとどうでしょう。
Analysisで可視化してみると、千代田区と港区の2つは表示されています。ただし港区の場所はずれています。
中央区は曖昧のため表示されていないようです。
リンク先のドキュメントを読むと次のようにあります。
Issues with ambiguous locations
Geospatial data can't contain ambiguous locations. For example, suppose that the data contains a city named Springfield, but the next level in the hierarchy is country. Because multiple states have a city named Springfield, it isn't possible to geocode the location to a specific point on a map.
To avoid this problem, you can add enough geographical data to indicate what location should show on a map chart. For example, you can add a state level into your data and its hierarchy. Or, you might add latitude and longitude.
どうやらTokyo
の配下に他にもChuo-Ku
があり、曖昧であると判断されてしまったようですね。区市町村レベルの可視化は課題がありそうです。
まとめ
- 国名(英語)は、地理空間情報として認識され、地図上での可視化もおおよそ正しく行われる。
- 国名(日本語)は、地理空間情報として認識されるが、地図上で正しく可視化されない。
- 都道府県名(英語)は、hierarchyを使用すれば、地図上での可視化も正しく行われる。
- 区市町村(英語)は、hierarchyを使用すれば、一部のレコードは地図上での可視化も正しく行われる。
State
以下の粒度の地域を地名カラムで地理空間情報として利用したい場合はhierarchyを使う必要がありました。区市町村レベルだと要検証にはなりそうですが、都道府県レベルだと問題なく利用できそうです。
参考
以上